package org.codeart.memento.example02;

public class Client {

    public static void main(String[] args) throws InterruptedException {
        // 创建玩家
        Player player = new Player(100);
        
        // 创建备忘录
        Memento memento = player.createMemento();

        for (int i = 0; i < 100; i++) {
            // 显示掷色子的次数
            System.out.printf("第 %d 次投掷\n", i);
            // 显示玩家状态
            System.out.printf("当前状态: %s\n", player);
            // 开启游戏
            player.play();
            System.out.printf("玩家所持有的金币: %d 元\n", player.getMoney());
            
            // 复活操作
            if (player.getMoney() > memento.getMoney()) {
                System.out.println("赚到金币, 保存当前状态, 继续游戏!");
                memento = player.createMemento();
            } else if (player.getMoney() < memento.getMoney() / 2) {
                System.out.println("所持有的金币不多, 将游戏恢复到初始状态!");
                player.restore(memento);
            }
            Thread.sleep(1500);
        }
    }

}
